package client;

import java.util.HashMap;

import command.Coller;
import command.Command;
import command.Copier;
import command.Couper;
import command.SaisirTexte;
import command.Selectionner;
import invoker.IhmImpl;
import receiver.MiniEditeurImpl;

/**
 * 
 * contient le main de l'application
 *
 */
public class Editeur {

	private MiniEditeurImpl _miniEditeur;

	private IhmImpl _ihm;

	private HashMap<String, Command> _lesCommandes;

	/**
	 * méthode qui permet d'instancer l'ihm, le miniEditeur et de mettre les commandes dans un HashMap 
	 */
	public void initialize(){

		_miniEditeur = new MiniEditeurImpl();
		_lesCommandes = new HashMap<String, Command>();
		_ihm = new IhmImpl();
		_lesCommandes.put("Selectionner", new Selectionner(_miniEditeur,_ihm));
		_lesCommandes.put("Copier", new Copier(_miniEditeur));
		_lesCommandes.put("Coller", new Coller(_miniEditeur));
		_lesCommandes.put("Couper", new Couper(_miniEditeur));
		_lesCommandes.put("Saisir", new SaisirTexte(_miniEditeur,_ihm));

		_ihm.setLesCommandes(_lesCommandes);
		//ihm.setMini(miniEditeur);
		_miniEditeur.addObserver(_ihm);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Editeur edit = new Editeur();
		edit.initialize();
	}

}
